iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0

Odoo

  • 是由 Odoo SA 公司發行的,是家比利時公司
  • Odoo 雖然是 Open Source,但開發藍圖是由 Odoo SA 規劃及主導
  • Odoo 的商業模式是由 80% Open Source 20% 由 Odoo SA 所有
  • 其衍伸出 Odoo Community Edition (CE) 和 Enterprise Edition (EE)
  • 而 EE 其實就是 CE 加上額外的模組,並且附贈其他服務
  • 秉持 80% CE 20% EE 為目標,讓 Odoo 持續能以 Open Source 之姿進化
  • Odoo App
  • Odoo SA 會支援且持續維護最近的三個版本,以現在為例 Odoo 14, 15, 16 有發生任何資安疑慮,Odoo SA 會進行修復並發布,但 Odoo 13 就們不具續進行維護了

版本

  • 在 Github 上的 branch 可選擇 16.0, 15.0, 14.0 來選用,都是穩定版本
  • 在穩定版本中,Odoo SA 會保持 API 的一致性,儘管未來有更新也不會做更動
  • 所以這對我們開發客製化模組時,不必擔心 Odoo 完成資安更新後有 API 不相容的問題
  • master 分支則是下一個版本的開發版,盡量別在 master 上開發,有可能發行後會被修改,並且 API 形式也還沒確定
  • Odoo 不同版本的資料庫互不相容,所以如果要升級版本的話,需要花額外的力氣,而 Odoo SA 有提供協助升級的服務
  • 由於 Odoo 的 Addon Module 跟資料庫密切關相關,所以跟不同版本的 Odoo 也是互不相容的

架構

arch.svg

Odoo 由三層架構組成,分別是 Data, Logic, Presentation Tier:

Data tier

  • 資料的操作及儲存都在這一層
  • 透過 PostgreSQL 來儲存,並且唯一使用 PostgreSQL,目前無法替換
  • 都是使用 Odoo Object-reloational mapping (Odoo ORM) 來操作資料庫,實作了 CRUD create(), search(), write(), unlink() 等方法,並且能設定資料存取權限的功能
  • Odoo 中的附件和圖片等檔案被儲存在 filestore 資料夾下
  • 所以,備份時除了資料庫以外,也要將 filestore 給一併複製

Logic tier

  • 負責跟 Data tier 互動
  • 這邊能寫 Python 實現商業流程,原理是透過 CRUD 方法對資料進行操作,能做到自動化、驗證、預設值和欄位植入進算公式 ... 等

Presentation tier

  • 展示資料,並和使用者互動
  • 透過 Remote Procedure Call (RPM) 來驅動 ORM 實現商業流程

上一篇
[Day01] 關於這系列的文章
下一篇
[Day03] 開始第一個專案 (這麼快就來了嘛!?)
系列文
Odoo 魔法學院: 一步一腳印帶你成為客製化大師30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言